package cn.lfzj.service;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.DigestUtils;

import cn.lfzj.dao.UserDao;
import cn.lfzj.model.User;

@Service
public class UserService {

	@Autowired
	private UserDao userDao;

	/**
	 * 根据用户名查用户ID
	 */
	public int selIdByName(String username) {
		return userDao.selIdByName(username);
	}

	/**
	 * 根据用户名查用户
	 */
	public List<User> selByUsername(String username) {
		return userDao.selByUsername(username);
	}

	/**
	 * 用户注册
	 */
	public int reg(User user) {
		if (userDao.selByName(user) != null) {
			return 0;
		}
		user.setMoney(0.0);
		user.setPassword(md5Util(user.getPassword()));
		return userDao.reg(user);
	}

	/**
	 * 用户登录
	 */
	public User login(User user) {
		user.setPassword(md5Util(user.getPassword()));
		if (userDao.login(user) == null) {
			return null;
		}
		return userDao.login(user);
	}

	/**
	 * 用户充值
	 */
	public int getMoney(String userId,double addMoney) {
		return userDao.getMoney(userId,addMoney);
	}

	/**
	 * 用户刷新余额
	 */
	public double selMoney(int userId) {
		return userDao.selMoney(userId);
	}

	/**
	 * 用户支付扣钱
	 */
	public int updateMoney(double amount, int userId) {
		return userDao.updateMoney(amount, userId);
	}

	/**
	 * 用户改密
	 */
	public int updPwd(String password, int userId, String oldPassword) {
		password = md5Util(password);
		oldPassword = md5Util(oldPassword);
		return userDao.updPwd(password, userId, oldPassword);
	}

	/**
	 * md5加密工具
	 */
	public String md5Util(String str) {
		return DigestUtils.md5DigestAsHex(str.getBytes());
	}

}
